package com.java.log;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint;
import org.springframework.stereotype.Component;


@Aspect
@Component
public class LogAspect {
    Logger logger = LogManager.getLogger(LogAspect.class);
    //	定义切点
    @Pointcut("execution(public * com.java.admin.*.*.*.*(..))") // “ .. ” 表示包之间不管有多少层  " * " 表示所有
    public void piontCut(){}

    //	定义时机：在目标方法之前执行增强代码
    @Around(value="piontCut()")
    public Object advice(ProceedingJoinPoint point) throws Throwable {
        logger.info("logon");
        /**
         *  记录执行方法之前的信息
         */


        // 增强执行的代码
        Object obj =point.proceed();


        //  记录日志
        return obj;
    }
}
